#include "eigen_test.h"

#include "eigen/eigen_operation_test.h"
#include "eigen/linear_test.h"
#include "eigen/softmax_test.h"
#include "eigen/cross_entropy_loss_test.h"
#include "eigen/one_hot_test.h"
#include "eigen/iterator_test.h"
#include "eigen/conv_test.h"
#include "eigen/padding_test.h"
#include "eigen/average_pooling_test.h"
#include "eigen/position_decay_linear_test.h"

using namespace  ldl_eigen;

void EigenTest::test()
{
    EigenOperationTest::test();
    EigenOperationTest::matrix_test();
    EigenOperationTest::linear_algebra_operations();
    EigenOperationTest::array_operations();
    EigenOperationTest::block_operations();
    EigenOperationTest::slice_operations();
    EigenOperationTest::advanced_initialization();
    EigenOperationTest::raw_buffer_interface();

    LinearTest::test();

    SoftMaxTest::test();

    CrossEntropyLossTest::test();

    OneHotTest::test();

    IteratorTest::test();

    // ConvTest::test();
    // EigenOperationTest::parallel_test();

    // PaddingTest::test();
    // AveragePoolingTest::test();

    PositionDecayLinearTest::test();
}

void EigenTest::performance_test()
{
    LinearTest::performance_test();
    SoftMaxTest::performance_test();
    CrossEntropyLossTest::performance_test();
    OneHotTest::performance_test();
}